
package com.jf.cloud.multishop.mapper;

import com.jf.cloud.multishop.dto.IndexImgDTO;
import com.jf.cloud.multishop.model.IndexImg;
import com.jf.cloud.multishop.vo.IndexImgVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 轮播图
 *
 * @author zz
 * @date 2020-11-24 16:38:32
 */
public interface IndexImgMapper {

    /**
     * 获取轮播图列表
     *
     * @param indexImgDTO
     * @return 轮播图列表
     */
    List<IndexImgVO> list(@Param("indexImg") IndexImgDTO indexImgDTO);

    /**
     * 根据轮播图id获取轮播图
     *
     * @param imgId 轮播图id
     * @return 轮播图
     */
    IndexImgVO getByImgId(@Param("imgId") Long imgId);

    /**
     * 保存轮播图
     *
     * @param indexImg 轮播图
     */
    void save(@Param("indexImg") IndexImg indexImg);

    /**
     * 更新轮播图
     *
     * @param indexImg 轮播图
     */
    void update(@Param("indexImg") IndexImg indexImg);

    /**
     * 根据轮播图id删除轮播图
     *
     * @param imgId  轮播图id
     * @param shopId 店铺id
     */
    void deleteByIdAndShopId(@Param("imgId") Long imgId, @Param("shopId") Long shopId);

    /**
     * 根据店铺id，获取轮播图列表
     *
     * @param shopId  店铺id
     * @param imgType 图片类型
     * @return 轮播图列表
     */
    List<IndexImgVO> getListByShopId(@Param("shopId") Long shopId, @Param("imgType") Integer imgType);

    /**
     * 解绑轮播图商品
     *
     * @param shopId
     * @param spuIds
     */
    void offlineSpuBySpuIds(@Param("shopId") Long shopId, @Param("spuIds") List<Long> spuIds);

    /**
     * 获取店铺指定类型的轮播图的数量
     *
     * @param imgType
     * @param shopId
     * @return
     */
    int countByImgTypeAndShopId(@Param("imgType") Integer imgType, @Param("shopId") Long shopId);

    /**
     * 根据商品id，切换轮播图类型
     * @param spuId 商品id
     * @return 轮播图列表
     */
    void batchUpdate(@Param("spuId") Long spuId);
}
